
var b = {
    name: 'aa'
}
function a(ee,e) {
    console.log(this.name);
    // console.log(ee + e);
    return ee + e
}
// let c = a.bind(b,1,2)
// c()


Function.prototype.mybind = function(context) {
    // 调用call的是this
    
    if(typeof this !== 'function') {
    // 如果调用我的不是个函数，就报错
        throw new TypeError('Error')
    } 
    let _this = this 
    context = context || window
    let args = [...arguments].slice(1)
    return function F() {
        // 把this代表的函数执行掉
        _this.apply(context,args.concat(Array.from(arguments))) // b.a()
        // _this.apply(context,args.concat(...arguments)) // 解构
    }

   
}

let c = a.mybind(b,1)
c(1,2)